From 5155fac94f815d362fa02c9f2548c3c166663962 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 11 Dec 2020 16:59:07 +0100 Subject: [PATCH] gtk/modelbutton: Handle unpaired releases Let model buttons handle unpaired releases, these may happen indirectly e.g. due to other child menus being opened at the time. Clicking would dismiss the menu, but the menu item beneath the pointer would not get activated. We can handle that button release though via ::unpaired-release, so there's no second click required. Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/3463 --- gtk/gtkmodelbutton.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c index 6c6be9a123..b644a7fe61 100644 --- a/gtk/gtkmodelbutton.c +++ b/gtk/gtkmodelbutton.c @@ -1493,6 +1493,7 @@ gtk_model_button_init (GtkModelButton *self) gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_PRIMARY); g_signal_connect (gesture, "pressed", G_CALLBACK (gesture_pressed), self); g_signal_connect_swapped (gesture, "released", G_CALLBACK (emit_clicked), self); + g_signal_connect_swapped (gesture, "unpaired-release", G_CALLBACK (emit_clicked), self); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_CAPTURE); gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture)); } -- 2.30.2